import axios from "axios";
import {ElMessage} from "element-plus";
//1 设置 根路径
// axios.defaults.baseURL = "http://127.0.0.1:8000/api/v1/"
//指定超时时间为5000毫秒
//指定请求头中编码格式为application/json
const request = axios.create({
    baseURL: "http://127.0.0.1:8000/api/v1/",
    timeout: 5000,
    headers: {
        'Content-Type': "application/json; charset=utf-8"
    }
})
// 2 请求拦截器中取出token，如果token存在，就携带，不存在就不带
request.interceptors.request.use((config) => {
    //从localStorage中获取token，如果存在就携带
    let token = localStorage.getItem('token')
    //token是公共参数，如果用户登录了需要携带
    if (token) {
        config.headers.token = 'Bearer ' + token
    }
    return config
})

// 3 响应拦截器：只要状态码不是100，弹消息
request.interceptors.response.use(
    response => {
        // console.log("response ->" + response)
        let res = response.data // 响应体
        if (res.code === 100) {
            return response.data
        } else {
            ElMessage({
                type: 'error',
                message: !res.msg ? '请求服务器异常,请联系管理员' : res.msg
            })
            return Promise.reject(response.data.msg)
        }
    },
    error => {
        ElMessage({
            type: 'error',
            message: '服务器异常，请稍后再试'
        })
        return Promise.reject(new Error(error.message))
    }
)
export default request;
